package com.supercube.sport.yoga.service;

import com.supercube.sport.yoga.domain.CoursesSupportedCardDTO;
import com.supercube.sport.yoga.domain.MemberCardBasicInfoDTO;
import com.supercube.sport.yoga.domain.MemberCardInfoDTO;
import com.supercube.sport.yoga.domain.MemberConsumeRecordDTO;
import com.supercube.sport.yoga.vo.*;

import java.util.List;
import java.util.Map;

public interface MemberCardService {
    void save(MemberCardBasicInfoDTO dto);

    void update(MemberCardBasicInfoDTO dto);

    void deleteMemberCardInfoByCardId(String cardId);

    MemberCardInfoVO queryMemberCardInfoByCardId(String cardId);

    List<MemberCardBasicInfoVO> selectMemberCardInfoList(MemberCardBasicInfoBo dto);
    int queryCountCardSupportVenuesByVenuesId(String venuesId);
    List<MemberCardVo> queryAllMemberCard(String cardId);

    List<BindCardVo> queryBindCardList(BindCardBo bo);

    void memberBindCard(MemberConsumeRecordDTO dto);
    void memberRenewCard(MemberConsumeRecordDTO dto);

    MemberCardBasicInfoVO queryMemberCardBaseInfoByCardId(String cardId);

    void memberCardDeductMoney(MemberCardDeductMoneyPo po);

    List<MemberCardBindingInfoVO> queryMemberBindCardInfoList(Map<String, Object> map);

    void memberCardStop(MemberCardStopPo po);

    void memberCardActivate(MemberCardStopPo po);

    List<MemberCardInfoVO> queryMemberCardInfoByCourseId(String courseId);

    void updateCoursesSupportedCard(List<CoursesSupportedCardDTO> importCSCList, String cardId);

    MemberCardInfoDTO getMemberCardInfo(String memberId, String  cardId);
}
